/*
 * @Author: hongbin
 * @Date: 2023-10-12 15:22:40
 * @LastEditors: hongbin
 * @LastEditTime: 2023-10-17 18:14:24
 * @Description: project 操作
 */
import mongoose from "mongoose";
const { model } = mongoose;
import { ProjectSchema } from "../Schema/index.js";
import { Manager } from "./index.js";
import { ObjectId } from "mongodb";

export const ProjectModel = model("projects", ProjectSchema);
export class ProjectManager extends Manager {
  model = ProjectModel;
  constructor(app) {
    super(model);
    this.app = app;
    this.listen();
    /**
     * 无效
     * 此问题是由于您正在使用本地数据库而导致的。请使用共享群集，然后它就会工作。
     * 注意：您必须连接到MongoDB副本集或分片集群才能使用更改流。Mongoose Documentation
     * 您可以通过访问MongoDB Atlas.MongoDB Atlas创建一个
     * 在Atlas上创建帐户
     * 创建共享群集（您可以免费创建一个）。
     * 从应用程序连接到群集。如何连接到群集
     */
    // const changeStream = this.model.watch(undefined, {
    //   showExpandedEvents: true,
    //   hydrate: true,
    // });

    // changeStream.on("response", async next => {
    //   console.log(next);
    //   console.log(await next);
    // });

    // this.create({ title: "Test" })
    //   .then(res => {
    //     console.log("insert", res);
    //   })
    //   .catch(err => {
    //     console.log("insert err", err);
    //   });
  }

  listen() {
    this.app.get("/projects", async (req, res) => {
      const list = await this.findAll();
      console.log(list);
    });
  }
}
